package com.sofwin.system;

import com.github.pagehelper.PageInfo;
import com.sofwin.common.ResponseData;
import com.sofwin.pojo.SysUser;
import com.sofwin.pojo.vo.NavMenu;
import com.sofwin.pojo.vo.UserVO;

import java.util.List;

/**
 * @packageName: com.sofwin.system
 * @user: andyliu
 * @date: 2021/9/17 16:46
 * @email 115176513@qq.com
 * @description: TODO
 */

public interface UserService {
    /**
     * 验证登录
     * @param user
     * @return
     */
    ResponseData checkLogin(SysUser user);

    /**
     * 分页查询用户信息
     * @param user
     * @param pageNumber  当前页码
     * @param pageSize  每页显示条数
     * @return
     */
    PageInfo<SysUser> queryUser(UserVO user, Integer pageNumber, Integer pageSize);


    /**
     * 新增或更新用户信息
     * @param user 主键如果不为空update，否则使用insert
     * @return 200 成功
     */
    boolean saveUser(SysUser user);

    /**
     * 根据id查询用户信息
     * @param id
     * @return
     */
    SysUser queryUserById(Integer id);

    /**
     * 根据选中的id单个或批量删除
     * @param ids
     * @return
     */
    boolean deleteUserByIds(Integer[] ids);

    /**
     * 根据登录名精确查找用户信息
     * @param loginName
     * @return
     */
    SysUser queryUserByUserName(String loginName);

    /**
     * 根据用户的角色ID查询对应的资源信息
     * @param roleId
     * @return
     */
    List<NavMenu> queryUserPermissions(Integer roleId);
}
